热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

发生|都会_redis服务之主从复制哨兵模式群集模式

篇首语:本文由编程笔记#小编为大家整理,主要介绍了redis服务之主从复制哨兵模式群集模式相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了redis服务之主从复制哨兵模式群集模式相关的知识,希望对你有一定的参考价值。



​一、Redis主从复制​

​1、Redis主从复制的概念​

  • 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。
  • 前者称为主节点(Master),后者称为从节点(Slave);
  • 数据的复制是单向的,只能由主节点到从节点。
  • 默认情况下,每台Redis服务器都是主节点;
  • 一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

​2、Redis主从复制的作用​

  • 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
  • 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
  • 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。

​3、Redis主从复制的流程​

  • 第一步:若启动一个Slave机器进程,则它会向Master机器发送一个“sync command”命令,请求同步连接。
  • 第二步:无论是第一次连接还是重新连接,Master机器都会启动一个后台进程,将数据快照保存到数据文件中(执行rdb操作),同时Master还会记录修改数据的所有命令并缓存在数据文件中。
  • 第三步:后台进程完成缓存操作之后,Maste机器就会向Slave机器发送数据文件,Slave端机器将数据文件保存到硬盘上,然后将其加载到内存中,接着Master机器就会将修改数据的所有操作一并发送给Slave端机器。若Slave出现故障导致宕机,则恢复正常后会自动重新连接。
  • 第四步:Master机器收到Slave端机器的连接后,将其完整的数据文件发送给Slave端机器,如果Mater同时收到多个Slave发来的同步请求,则Master会在后台启动一个进程以保存数据文件,然后将其发送给所有的Slave端机器,确保所有的Slave端机器都正常。

​4、Redis主从复制的搭建​

  • Master:192.168.132.50
  • Slave1:​192.168.132.51
  • Slave2:​192.168.132.52

hostnamectl set-hostname master #修改主机名,每台主机要改的不一样
su
systemctl stop firewalld
setenforce 0

redis服务之主从复制、哨兵模式、群集模式_redis

redis服务之主从复制、哨兵模式、群集模式_redis_02

redis服务之主从复制、哨兵模式、群集模式_集群_03

​1.安装Redis(所有主机)​

  • Master:192.168.132.50
  • Slave1:​192.168.132.51
  • Slave2:​192.168.132.52

yum install -y gcc gcc-c++ make
cd /opt
tar zxvf redis-5.0.7.tar.gz
cd /opt/redis-5.0.7/
make && make PREFIX=/usr/local/redis install
cd /opt/redis-5.0.7/utils
./install_server.sh
......
#回车四次后,手动输入,需要一次性输入正确
Please select the redis executable path [] /usr/local/redis/bin/redis-server
ln -s /usr/local/redis/bin/* /usr/local/bin/

redis服务之主从复制、哨兵模式、群集模式_主从复制_04

redis服务之主从复制、哨兵模式、群集模式_redis_05

redis服务之主从复制、哨兵模式、群集模式_主从复制_06

redis服务之主从复制、哨兵模式、群集模式_主从复制_07

​2.修改Master节点Redis配置文件​

Master:192.168.132.50

vim /etc/redis/6379.conf
#70行,修改bind 项,0.0.0.0监听所有网段
bind 0.0.0.0
#137行,开启守护进程
daemonize yes
#172行,指定日志文件目录
logfile /var/log/redis_6379.log
#264行,指定工作目录
dir /var/lib/redis/6379
#700行,开启AOF持久化功能
appendonly yes
/etc/init.d/redis_6379 restart
netstat -natp | grep redis

redis服务之主从复制、哨兵模式、群集模式_哨兵模式_08

redis服务之主从复制、哨兵模式、群集模式_数据_09

redis服务之主从复制、哨兵模式、群集模式_哨兵模式_10

redis服务之主从复制、哨兵模式、群集模式_主从复制_11

redis服务之主从复制、哨兵模式、群集模式_redis_12

redis服务之主从复制、哨兵模式、群集模式_数据_13

​3.修改Slave节点Redis配置文件​

  • Slave1:​192.168.132.51
  • Slave2:​192.168.132.52

vim /etc/redis/6379.conf
#70行,修改bind 项,0.0.0.0监听所有网卡
bind 0.0.0.0
#137行,开启守护进程
daemonize yes
#172行,指定日志文件目录
logfile /var/log/redis_6379.log
#264行,指定工作目录
dir /var/lib/redis/6379
#288行,指定要同步的Master节点IP和端口
replicaof 192.168.163.10 6379
#700行,开启AOF持久化功能
appendonly yes
/etc/init.d/redis_6379 restart
netstat -natp | grep redis

redis服务之主从复制、哨兵模式、群集模式_主从复制_14

redis服务之主从复制、哨兵模式、群集模式_主从复制_15

redis服务之主从复制、哨兵模式、群集模式_哨兵模式_16

redis服务之主从复制、哨兵模式、群集模式_数据_17

​4.验证主从效果​

Master:192.168.132.50

在Master节点上看日志

tail -f /var/log/redis_6379.log

redis服务之主从复制、哨兵模式、群集模式_redis_18

在Master节点上验证从节点

redis-cli info replication

redis服务之主从复制、哨兵模式、群集模式_哨兵模式_19

redis服务之主从复制、哨兵模式、群集模式_redis_20

​二、Redis 哨兵模式​

哨兵的核心功能:在主从复制的基础上,哨兵引入了主节点的​自动故障转移

​1、哨兵模式的原理​

  • 哨兵(sentinel):是一个​分布式系统​,用于对主从结构中的每台服务器进行监控,当出现故障时​通过投票机制​选择新的 Master 并将所有 Slave 连接到新的 Master。所以整个运行哨兵的集群的数量​不得少于3个节点​。

​2、哨兵模式的作用​

  • 监控:哨兵会不断地检查主节点和从节点是否运作正常。
  • 自动故障转移:当主节点不能正常工作时,哨兵会开始自动故障转移操作,它会将失效主节点的其中一个从节点升级为新的主节点,并让其他从节点改为复制新的主节点。
  • 通知(提醒):哨兵可以将故障转移的结果发送给客户端。

​3、哨兵模式的结构​

哨兵结构由两部分组成,哨兵节点​​数据节点

  • 哨兵节点:哨兵系统由一个或多个哨兵节点组成,哨兵节点是​特殊的redis节点,不存储数据​。
  • 数据节点:主节点和从节点都是数据节点。

哨兵的启动依赖于主从模式,所以须把主从模式安装好的情况下再去做哨兵模式,​所有节点上都需要部署哨兵模式​,哨兵模式会监控所有的 Redis 工作节点是否正常,当 Master 出现问题的时候,因为其他节点与主节点失去联系,因此会投票,​投票过半就认为这个 Master 的确出现问题​,然后会通知哨兵间,然后从 Slaves 中选取一个作为新的 Master。

注意​:客观下线是主节点才有的概念;如果从节点和哨兵节点发生故障,被哨兵主观下线后,不会再有后续的客观下线和故障转移操作。

redis服务之主从复制、哨兵模式、群集模式_数据_21

​1.主节点的选举​

  1. 过滤掉不健康的(已下线的),没有回复哨兵ping响应的从节点。
  2. 选择配置文件中从节点优先级配置最高的。(replica-priority,默认值为100)。
  3. 选择复制偏移量最大,也就是复制最完整的从节点。

​4、哨兵模式的搭建​

  • Master:192.168.132.50
  • Slave1:​192.168.132.51
  • Slave2:​192.168.132.52

​1.修改 Redis 配置文件(所有节点操作)​

  • Master:192.168.132.50
  • Slave1:​192.168.132.51
  • Slave2:​192.168.132.52

vim /opt/redis var cpro_id = "u6885494";

推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • Nginx Buffer 机制引发的下载故障
    Nginx ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
author-avatar
小布丁她Daddy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有